package com.yict.csms.resourceplan.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.yict.csms.company.entity.Company;
import com.yict.csms.system.entity.DataDict;
import com.yict.csms.system.entity.User;

/**
 * 
 * @author Patrick.Deng
 * 
 */
@Entity
@Table(name = "CSMS_SHIP_PLAN")
public class ShipPlan {

	@Id
	@Column(name = "PLANID")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "csms_ship_plan_seq")
	@SequenceGenerator(name = "csms_ship_plan_seq", sequenceName = "SEQ_CSMS_SHIP_PLAN", allocationSize = 1, initialValue = 1)
	private Long planId;

	@ManyToOne
	@JoinColumn(name = "SHIPID")
	private ShipCsms ship;

	@ManyToOne
	@JoinColumn(name = "PROFEID")
	private DataDict profession;

	@Column(name = "PROFENAME")
	private String profeName;

	@ManyToOne
	@JoinColumn(name = "COMPANYID")
	private Company company;

	@Column(name = "STATUS")
	private String status;

	@Column(name = "REMARKS")
	private String remarks;

	@Column(name = "WORKMAN")
	private String workMan;

	@ManyToOne
	@JoinColumn(name = "SENDSTATUS")
	private DataDict sendStatus;

	@Column(name = "WORKBEGINDATE")
	private Date workBeginDate;

	@Column(name = "WORKENDDATE")
	private Date workendDate;

	@ManyToOne
	@JoinColumn(name = "ORDERPERSON")
	private User orderPerson;

	@Column(name = "ORDERDATE")
	private Date orderDate;

	@ManyToOne
	@JoinColumn(name = "REORDERPERSON")
	private User reOrderPerson;

	@Column(name = "REORDERDATE")
	private Date reOrderDate;

	@ManyToOne
	@JoinColumn(name = "ASSIGNEDPERSON")
	private User assignedPerson;

	@Column(name = "ASSIGNEDDATE")
	private Date assignedDate;

	@ManyToOne
	@JoinColumn(name = "REASSIGNEDPERSON")
	private User reAssignedPerson;

	@Column(name = "REASSIGNEDDATE")
	private Date reAssignedDate;

	@ManyToOne
	@JoinColumn(name = "CONFIRMPERSON")
	private User confirmPerson;

	@Column(name = "CONFIRMDATE")
	private Date confirmDate;

	@ManyToOne
	@JoinColumn(name = "RECONFIRMPERSON")
	private User reConfirmPerson;

	@Column(name = "RECONFIRMDATE")
	private Date reConfirmDate;

	@Column(name = "CREATEPERSON")
	private Long createperson;

	@Column(name = "CREATEDATE")
	private Date createdate;

	@Column(name = "UPDATEPERSON")
	private Long updateperson;

	@Column(name = "UPDATEDATE")
	private Date updatedate;

	public Long getPlanId() {
		return planId;
	}

	public void setPlanId(Long planId) {
		this.planId = planId;
	}

	public ShipCsms getShip() {
		return ship;
	}

	public void setShip(ShipCsms ship) {
		this.ship = ship;
	}

	public DataDict getProfession() {
		return profession;
	}

	public void setProfession(DataDict profession) {
		this.profession = profession;
	}

	public String getProfeName() {
		return profeName;
	}

	public void setProfeName(String profeName) {
		this.profeName = profeName;
	}

	public Company getCompany() {
		return company;
	}

	public void setCompany(Company company) {
		this.company = company;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public String getWorkMan() {
		return workMan;
	}

	public void setWorkMan(String workMan) {
		this.workMan = workMan;
	}

	public DataDict getSendStatus() {
		return sendStatus;
	}

	public void setSendStatus(DataDict sendStatus) {
		this.sendStatus = sendStatus;
	}

	public Date getWorkBeginDate() {
		return workBeginDate;
	}

	public void setWorkBeginDate(Date workBeginDate) {
		this.workBeginDate = workBeginDate;
	}

	public Date getWorkendDate() {
		return workendDate;
	}

	public void setWorkendDate(Date workendDate) {
		this.workendDate = workendDate;
	}

	public User getOrderPerson() {
		return orderPerson;
	}

	public void setOrderPerson(User orderPerson) {
		this.orderPerson = orderPerson;
	}

	public Date getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(Date orderDate) {
		this.orderDate = orderDate;
	}

	public User getReOrderPerson() {
		return reOrderPerson;
	}

	public void setReOrderPerson(User reOrderPerson) {
		this.reOrderPerson = reOrderPerson;
	}

	public Date getReOrderDate() {
		return reOrderDate;
	}

	public void setReOrderDate(Date reOrderDate) {
		this.reOrderDate = reOrderDate;
	}

	public User getAssignedPerson() {
		return assignedPerson;
	}

	public void setAssignedPerson(User assignedPerson) {
		this.assignedPerson = assignedPerson;
	}

	public Date getAssignedDate() {
		return assignedDate;
	}

	public void setAssignedDate(Date assignedDate) {
		this.assignedDate = assignedDate;
	}

	public User getReAssignedPerson() {
		return reAssignedPerson;
	}

	public void setReAssignedPerson(User reAssignedPerson) {
		this.reAssignedPerson = reAssignedPerson;
	}

	public Date getReAssignedDate() {
		return reAssignedDate;
	}

	public void setReAssignedDate(Date reAssignedDate) {
		this.reAssignedDate = reAssignedDate;
	}

	public User getConfirmPerson() {
		return confirmPerson;
	}

	public void setConfirmPerson(User confirmPerson) {
		this.confirmPerson = confirmPerson;
	}

	public Date getConfirmDate() {
		return confirmDate;
	}

	public void setConfirmDate(Date confirmDate) {
		this.confirmDate = confirmDate;
	}

	public User getReConfirmPerson() {
		return reConfirmPerson;
	}

	public void setReConfirmPerson(User reConfirmPerson) {
		this.reConfirmPerson = reConfirmPerson;
	}

	public Date getReConfirmDate() {
		return reConfirmDate;
	}

	public void setReConfirmDate(Date reConfirmDate) {
		this.reConfirmDate = reConfirmDate;
	}

	public Long getCreateperson() {
		return createperson;
	}

	public void setCreateperson(Long createperson) {
		this.createperson = createperson;
	}

	public Date getCreatedate() {
		return createdate;
	}

	public void setCreatedate(Date createdate) {
		this.createdate = createdate;
	}

	public Long getUpdateperson() {
		return updateperson;
	}

	public void setUpdateperson(Long updateperson) {
		this.updateperson = updateperson;
	}

	public Date getUpdatedate() {
		return updatedate;
	}

	public void setUpdatedate(Date updatedate) {
		this.updatedate = updatedate;
	}
}
